/*
 * AccountUserDao.java
 *
 * Created on 29 de mayo de 2006, 06:32 PM
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package inc.jmc.cyberboard.dao;
import inc.jmc.cyberboard.AccountUser;
import java.sql.*;
import java.util.ArrayList;

/**
 *
 * @author Juan Miguel Olguin Salguero
 */
public class AccountUserDao {
    
    public java.util.ArrayList<AccountUser> getAllUsers(Connection conn) throws java.sql.SQLException
    {
        String query1 ="select * from ccn_usuarios";
        ArrayList<AccountUser> arry=new ArrayList<AccountUser>();
        PreparedStatement pstmt=conn.prepareStatement(query1);
        ResultSet rs=pstmt.executeQuery();
        while(rs.next())
        {
            AccountUser acc=new AccountUser();
            acc.setNombre(rs.getString("NOMBRE"));
            acc.setDireccion(rs.getString("DIRECCION"));
            acc.setTelefono(rs.getString("TELEFONO"));
            acc.setEmail(rs.getString("EMAIL"));
            acc.setUsuario(rs.getString("USUARIO"));
            acc.setPassword(rs.getString("PASSWORD"));
            acc.setTipoUsuario(new Integer(rs.getInt("ID_TIPO_USUARIO")));
            arry.add(acc);
        }
        pstmt.close();
        return arry;
    
    }
    
    public int getIdAccountUser(Connection conn, String usuario) throws java.sql.SQLException
    {
        int idUser=0;
        String query1 ="select ID_USUARIO from ccn_usuarios where USUARIO=?";
        PreparedStatement pstmt=conn.prepareStatement(query1);
        pstmt.setString(1,usuario);
        ResultSet rs=pstmt.executeQuery();
        while(rs.next())
        {
            idUser = rs.getInt("ID_USUARIO");
            
        }
        pstmt.close();
        return idUser;
    
    }
    
    public int add(Connection conn,AccountUser user) throws java.sql.SQLException
    {
        String insert ="insert into ccn_usuarios(nombre,direccion,telefono,email,usuario,password,id_tipo_usuario) " +
                "values(?,?,?,?,?,?,?)";
        PreparedStatement pstmt=conn.prepareStatement(insert);
        pstmt.setString(1,user.getNombre());
        pstmt.setString(2,user.getDireccion());
        pstmt.setString(3,user.getTelefono());
        pstmt.setString(4,user.getEmail());
        pstmt.setString(5,user.getUsuario());
        pstmt.setString(6,user.getPassword());
        pstmt.setString(7,""+user.getTipoUsuario().intValue());
        pstmt.executeUpdate();
        pstmt.close();
        
        return 0;
    }
     public int update(Connection conn,AccountUser user,String usuarioAnterior) throws java.sql.SQLException
    {
        String insert ="update ccn_usuarios set nombre=?," +
                "direccion=?," +
                "telefono=?," +
                "email=?," +
                "usuario=?," +
                "password=?," +
                "id_tipo_usuario=? " +
                "where usuario=?";
        PreparedStatement pstmt=conn.prepareStatement(insert);
        pstmt.setString(1,user.getNombre());
        pstmt.setString(2,user.getDireccion());
        pstmt.setString(3,user.getTelefono());
        pstmt.setString(4,user.getEmail());
        pstmt.setString(5,user.getUsuario());
        pstmt.setString(6,user.getPassword());
        pstmt.setInt(7,user.getTipoUsuario().intValue());
        if(usuarioAnterior!=null)
            pstmt.setString(8,usuarioAnterior);
        else
            pstmt.setString(8,user.getUsuario());
        pstmt.executeUpdate();
        pstmt.close();
        
        return 0;
    }
     public int delete(Connection conn,String usuario) throws java.sql.SQLException
    {
        String insert ="delete from ccn_usuarios where usuario=?";
        PreparedStatement pstmt=conn.prepareStatement(insert);
        pstmt.setString(1,usuario);
        pstmt.executeUpdate();
        pstmt.close();
        return 0;
    }
     
     /**
     * @param conn
     * @param user
     * @return
     * @throws java.sql.SQLException
     */
    public String[] validUser(Connection conn,String user,String password) throws java.sql.SQLException
     {
    	 String[] ret=null;
    	 StringBuffer sb=new StringBuffer();
    	 sb.append("SELECT "); 
    	 sb.append("u.id_usuario,u.usuario, t.descripcion "); 
    	 sb.append("FROM ccn_tipo_usuarios t, ccn_usuarios u "); 
    	 sb.append("where t.id_tipo_usuario=u.id_tipo_usuario "); 
    	 sb.append("and u.usuario = '"+user+"' "); 
    	 sb.append("and u.password='"+password+"' ");
    	 PreparedStatement pstmt=conn.prepareStatement(sb.toString());
         ResultSet rs=pstmt.executeQuery();
         while(rs.next())
         {
        	 ret=new String[3];
        	 ret[0] = rs.getString("id_usuario");
        	 ret[1] = rs.getString("usuario");
        	 ret[2] = rs.getString("descripcion");
        	 break;
         }
         pstmt.close();
         rs.close();
         return ret;
    	 
    	 
     }
    
}
